<!--SIF Implementation Specification 2.2-6 (March 17, 2008)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.sifinfo.org/infrastructure/2.x" xmlns:sif="http://www.sifinfo.org/infrastructure/2.x" elementFormDefault="qualified">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="imports/xml/xml.xsd" />
  <xs:complexType name="SIF_AgentACLType">
    <xs:annotation>
      <xs:documentation>This object provides an Agent its access control list (ACL) settings in the Zone.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_ProvideAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_Contexts" type="sif:SIF_ContextsType">
                    <xs:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_SubscribeAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_Contexts" type="sif:SIF_ContextsType">
                    <xs:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishAddAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_Contexts" type="sif:SIF_ContextsType">
                    <xs:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishChangeAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_Contexts" type="sif:SIF_ContextsType">
                    <xs:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishDeleteAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_Contexts" type="sif:SIF_ContextsType">
                    <xs:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_RequestAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_Contexts" type="sif:SIF_ContextsType">
                    <xs:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_RespondAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_Contexts" type="sif:SIF_ContextsType">
                    <xs:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_AgentACL" type="sif:SIF_AgentACLType" />

  <xs:complexType name="SIF_AgentACLInfrastructureType">
    <xs:annotation>
      <xs:documentation>This object provides an Agent its access control list (ACL) settings in the Zone.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_ProvideAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_Contexts" type="sif:SIF_ContextsType">
                    <xs:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_SubscribeAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_Contexts" type="sif:SIF_ContextsType">
                    <xs:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishAddAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_Contexts" type="sif:SIF_ContextsType">
                    <xs:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishChangeAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_Contexts" type="sif:SIF_ContextsType">
                    <xs:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishDeleteAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_Contexts" type="sif:SIF_ContextsType">
                    <xs:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_RequestAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_Contexts" type="sif:SIF_ContextsType">
                    <xs:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_RespondAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_Contexts" type="sif:SIF_ContextsType">
                    <xs:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
  </xs:complexType>

</xs:schema>